<%@ page contentType="text/html;charset=UTF-8" %>
<script>
$(document).ready(function() {
	$('#inventoryTable').bootstrapTable({
		 
		  //请求方法
               method: 'get',height:550,
               //类型json
               dataType: "json",
               //显示刷新按钮
               showRefresh: true,
               //显示切换手机试图按钮
               showToggle: true,
               //显示 内容列下拉框
    	       showColumns: true,
    	       //显示到处按钮
    	       showExport: true,
    	       //显示切换分页按钮
    	       showPaginationSwitch: true,
    	       //最低显示2行
    	       minimumCountColumns: 2,
               //是否显示行间隔色
               striped: true,
               //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）     
               cache: false,    
               //是否显示分页（*）  
               pagination: true,   
                //排序方式 
               sortOrder: "asc",  
               //初始化加载第一页，默认第一页
               pageNumber:1,   
               //每页的记录行数（*）   
               pageSize: 10,  
               //可供选择的每页的行数（*）    
               pageList: [10, 25, 50, 100],
               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
               url: "${ctx}/wms/inventory/data",
               //默认值为 'limit',传给服务端的参数为：limit, offset, search, sort, order Else
               //queryParamsType:'',   
               ////查询参数,每次调用是会带上这个参数，可自定义                         
               queryParams : function(params) {
               	var searchParam = $("#searchForm").serializeJSON();
               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
                   return searchParam;
               },
               //分页方式：client客户端分页，server服务端分页（*）
               sidePagination: "server",
               contextMenuTrigger:"right",//pc端 按右键弹出菜单
               contextMenuTriggerMobile:"press",//手机端 弹出菜单，click：单击， press：长按。
               contextMenu: '#context-menu',
               onContextMenuItem: function(row, $el){
                   if($el.data("item") == "edit"){
                   	edit(row.id);
                   } else if($el.data("item") == "delete"){
                        jp.confirm('确认要删除该库存查询记录吗？', function(){
                       	jp.loading();
                       	jp.get("${ctx}/wms/inventory/delete?id="+row.id, function(data){
                   	  		if(data.success){
                   	  			$('#inventoryTable').bootstrapTable('refresh');
                   	  			jp.success(data.msg);
                   	  		}else{
                   	  			jp.error(data.msg);
                   	  		}
                   	  	})
                   	   
                   	});
                      
                   } 
               },
              
               onClickRow: function(row, $el){
               },
               columns: [{
		        checkbox: true
		       
		    }
			,{
		        field: 'location',
		        title: '货位',
		        sortable: true
		        ,formatter:function(value, row , index){
 			    if(value == null){
		            	return "<a href='javascript:edit(\""+row.id+"\")'>-</a>";
		            }else{
		                return "<a href='javascript:edit(\""+row.id+"\")'>"+value.name+"</a>";
		            }
		        }
		       
		    },{
                       field: 'projectName',
                       title: '项目',
                       sortable: true

                   }

			,{
		        field: 'code',
		        title: '物料编码',
		        sortable: true
                   ,formatter:function(value, row , index){
        return value+","
    }
		       
		    }
			,{
		        field: 'name',
		        title: '物料名称',
		        sortable: true
                       ,formatter:function(value, row , index){
		        	return value.name
					   }
		    },{
                       field: 'inventoryNumber',
                       title: '库存数量',
                       sortable: true

                   }
                   ,{
                       field: 'usable',
                       title: '可用量',
                       sortable: true

                   }
			,{
		        field: 'allocation',
		        title: '冻结数量',
		        sortable: true

		    }
                   ,{
                       field: 'batch',
                       title: '批次',
                       sortable: true
                       ,formatter:function(value, row , index){
                           return value+","

                   }}




			,{
		        field: 'inboundDate',
		        title: '入库日期',
		        sortable: true

		    }

                   ,{
                       field: 'shipperCode',
                       title: '货主代码',
                       sortable: true

                   }
			,{
		        field: 'remarks',
		        title: '备注信息',
		        sortable: true
		       
		    }
		     ]
		
		});
		
		  
	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端

		 
		  $('#inventoryTable').bootstrapTable("toggleView");
		}
	  
	  $('#inventoryTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
                'check-all.bs.table uncheck-all.bs.table', function () {
            $('#move').prop('disabled', $('#inventoryTable').bootstrapTable('getSelections').length!=1);
            $('#edit').prop('disabled', $('#inventoryTable').bootstrapTable('getSelections').length!=1);
          $('#kcsd').prop('disabled', $('#inventoryTable').bootstrapTable('getSelections').length!=1);
          $('#qxsd').prop('disabled', $('#inventoryTable').bootstrapTable('getSelections').length!=1);

      });
		  
		$("#btnImport").click(function(){
			jp.open({
			    type: 1, 
			    area: [500, 300],
			    title:"导入数据",
			    content:$("#importBox").html() ,
			    btn: ['下载模板','确定', '关闭'],
				    btn1: function(index, layero){
					  window.location='${ctx}/wms/inventory/import/template';
				  },
			    btn2: function(index, layero){
				        var inputForm =top.$("#importForm");
				        var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe 
				        inputForm.attr("target",top_iframe);//表单提交成功后，从服务器返回的url在当前tab中展示
				        inputForm.onsubmit = function(){
				        	jp.loading('  正在导入，请稍等...');
				        }
				        inputForm.submit();
					    jp.close(index);
				  },
				 
				  btn3: function(index){ 
					  jp.close(index);
	    	       }
			}); 
		});
		    
	  $("#search").click("click", function() {// 绑定查询按扭
		  $('#inventoryTable').bootstrapTable('refresh');
		});
	 
	 $("#reset").click("click", function() {// 绑定查询按扭
		  $("#searchForm  input").val("");
		  $("#searchForm  select").val("");
		  $("#searchForm  .select-item").html("");
		  $('#inventoryTable').bootstrapTable('refresh');
		});
		
		
	});
		
  function getIdSelections() {
        return $.map($("#inventoryTable").bootstrapTable('getSelections'), function (row) {
            return row.id
        });
    }
    function dc() {
        $.ajax({
			type:'POST',
            dataType:'json',
            url:'${ctx}/wms/inventory/export?ids='+getIdSelections(),
            success:function (data) {
                jp.success("导出成功，位置为E:/库存");
			},
			error:function () {
				jp.warning("出错了")
            }
        })
    }
    function move() {
  	var id=getIdSelections();
  	if(id==null||id==""){
  		alert("请选择一条数据!");
  		return;
	}
		$.ajax({
			dataType:'json',
			url:'${ctx}/wms/inventory/detil?i='+ getIdSelections(),
			success:function (data) {
                $("#code0").val(data.code);
                $("#name0").val(data.name.name);
                $("#location").val(data.location.name);
                $("#entry").val(data.inboundDate);
                $("#batch0").val(data.batch);
                $("#amount").val(data.usable);
                $("#inventId").val(data.id);
            }
		})

  	$("#yd").modal("show");
    }
    function yd() {
        var inventId= $("#inventId").val();
        var newLocation=$("#newLocation").val();
        var amount=$("#moveAmount").val();
        var oldAmount=$("#amount").val();
        if(parseInt(oldAmount)<parseInt(amount)){
        	alert("转移数量不能大于库存！");
        	return;
		}
        $.ajax({
            async: false,
            dataType:'json',
            url:'${ctx}/wms/inventory/move?i='+inventId+'&location='+newLocation+'&amount='+amount,
            success:function (data) {
                $("#code0").val("");
                $("#location").val("");
                $("#entry").val("");
                $("#batch0").val("");
                $("#amount").val("");
                $("#inventId").val("");
                $("#newLocationId").val("");
                $("#moveAmount").val("");
            }
        })

        $("#yd").modal("hide");
        $('#inventoryTable').bootstrapTable('refresh');
    }
    function update() {
        var id=getIdSelections();
        if(id==null||id==""){
            alert("请选择一条数据!");
            return;
        }
        $.ajax({
            dataType:'json',
            url:'${ctx}/wms/inventory/detil?i='+ getIdSelections(),
            success:function (data) {
                $("#code1").val(data.code);
                $("#name1").val(data.name.name);
                $("#location1").val(data.location.name);
                $("#entry1").val(data.inboundDate);
                $("#batch1").val(data.batch);
                $("#amount1").val(data.usable);
                $("#inventId1").val(data.id);
            }
        })

        $("#ed").modal("show");
    }
    
    function up() {
        var inventId= $("#inventId1").val();
        var amount=$("#moveAmount1").val();
        if(parseInt(amount)<0){
            alert("库存数量不能位负数！");
            return;
        }
        $.ajax({
            async: false,
            dataType:'json',
            url:'${ctx}/wms/inventory/up?i='+inventId+'&amount='+amount,
            success:function (data) {
                $("#code1").val("");
                $("#location1").val("");
                $("#entry1").val("");
                $("#batch1").val("");
                $("#amount1").val("");
                $("#inventId1").val("");
                $("#moveAmount1").val("");
            }
        })

        $("#ed").modal("hide");
        $('#inventoryTable').bootstrapTable('refresh');
    }
    
    function kcsd() {
        $.ajax({
            dataType:'json',
            url:'${ctx}/wms/inventory/detil?i='+ getIdSelections(),
            success:function (data) {
                $("#code2").val(data.code);
                $("#name2").val(data.name.name);
                $("#location2").val(data.location.name);
                $("#entry2").val(data.inboundDate);
                $("#batch2").val(data.batch);
                $("#amount2").val(data.usable);
                $("#inventId2").val(data.id);
            }
        })

        $("#sd").modal("show");
    }
    
    function sd() {
        var inventId= $("#inventId2").val();
        var amount=$("#sdAmount").val();
        var oldAmount=$("#amount2").val();
        if(parseInt(oldAmount)<parseInt(amount)){
           jp.warning("冻结数量不能大于库存！");
            return;
        }
        $.ajax({
            async: false,
            dataType:'json',
            url:'${ctx}/wms/inventory/dj?i='+inventId+'&amount='+amount,
            success:function (data) {
                $("#code2").val("");
                $("#location2").val("");
                $("#entry2").val("");
                $("#batch2").val("");
                $("#amount2").val("");
                $("#inventId2").val("");
                $("#djAmount").val("");
            }
        })

        $("#sd").modal("hide");
        $('#inventoryTable').bootstrapTable('refresh');
    }
function qxsd() {
    $.ajax({
        dataType:'json',
        url:'${ctx}/wms/inventory/detil?i='+ getIdSelections(),
        success:function (data) {
            if(data.allocation!=null&&data.allocation!='' &&data.allocation!='0'){
            $("#code3").val(data.code);
                $("#name3").val(data.name.name);

                $("#location3").val(data.location.name);
            $("#entry3").val(data.inboundDate);
            $("#batch3").val(data.batch);
            $("#amount3").val(data.allocation);
            $("#inventId3").val(data.id);
                $("#qx").modal("show");}else{
            	jp.warning("该库存没有冻结");
            	return;
			}
        }
    })


}
function qx() {
    var inventId= $("#inventId3").val();
    var amount=$("#qxAmount").val();
    var oldAmount=$("#amount3").val();
    if(parseInt(oldAmount)<parseInt(amount)){
        jp.warning("取消数量不能大于冻结数量！");
        return;
    }
    $.ajax({
        async: false,
        dataType:'json',
        url:'${ctx}/wms/inventory/qx?i='+inventId+'&amount='+amount,
        success:function (data) {
            $("#code3").val("");
            $("#location3").val("");
            $("#entry3").val("");
            $("#batch3").val("");
            $("#amount3").val("");
            $("#inventId3").val("");
            $("#qxAmount").val("");
        }
    })

    $("#qx").modal("hide");
    $('#inventoryTable').bootstrapTable('refresh');
}
  function deleteAll(){

		jp.confirm('确认要删除该库存查询记录吗？', function(){
			jp.loading();  	
			jp.get("${ctx}/wms/inventory/deleteAll?ids=" + getIdSelections(), function(data){
         	  		if(data.success){
         	  			$('#inventoryTable').bootstrapTable('refresh');
         	  			jp.success(data.msg);
         	  		}else{
         	  			jp.error(data.msg);
         	  		}
         	  	})
          	   
		})
  }
function se(evt) {
    ChangeCoords(); //控制查询结果div坐标
    var k = window.event ? evt.keyCode : evt.which;
    //输入框的id为txt_search，这里监听输入框的keyup事件
    //不为空 && 不为上箭头或下箭头或回车
    if ($("#newLocation1").val() != "" && k != 38 && k != 40 && k != 13) {
        $.ajax({
            type: 'post',
            async: true, //同步执行，不然会有问题
            dataType: "json",
            url: "${ctx}/infor/location/getLocation?name="+$("#newLocation1").val(),   //提交的页面/方法
            error: function (msg) {//请求失败处理函数
                alert("数据加载失败");
            },
            success: function (data) { //请求成功后处理函数。
                /*  var objData = eval("(" + data.userName + ")");   */
                console.log(data);
                if (data.length > 0) {
                    var layer = "";
                    layer = "<table id='aa'>";
                    $.each(data, function (idx, item) {
                        layer += "<tr class='line' id='"+item.id+"'><td class='std'>" + item.name+ "</td></tr>";
                    });
                    layer += "</table>";

                    //将结果添加到div中
                    $("#searchresult").empty();
                    $("#searchresult").append(layer);
                    $(".line:first").addClass("hover");
                    $("#searchresult").css("display", "");
                    //鼠标移动事件

                    $(".line").hover(function () {
                        $(".line").removeClass("hover");
                        $(this).addClass("hover");
                    }, function () {
                        $(this).removeClass("hover");
                        //$("#searchresult").css("display", "none");
                    });
                    //鼠标点击事件
                    $(".line").click(function () {
                        $("#newLocation1").val($(this).text());
                        $("#newLocation").val($(this).attr("id"));
                        $("#searchresult").css("display", "none");
                    });
                } else {
                    $("#searchresult").empty();
                    $("#searchresult").css("display", "none");
                }
            }
        });
    }
    else if (k == 38) {//上箭头
        $('#aa tr.hover').prev().addClass("hover");
        $('#aa tr.hover').next().removeClass("hover");
        $('#newLocation1').val($('#aa tr.hover').text());
    }
    else if (k == 40) {//下箭头
        $('#aa tr.hover').next().addClass("hover");
        $('#aa tr.hover').prev().removeClass("hover");
        $('#newLocation1').val($('#aa tr.hover').text());
    }
    else if (k == 13) {//回车
        $('#newLocation1').val($('#aa tr.hover').text());
        $("#newLocation").val($('#aa tr.hover').attr("id"));
        $("#searchresult").empty();
        $("#searchresult").css("display", "none");
    }
    else {
        $("#searchresult").empty();
        $("#searchresult").css("display", "none");
    }
};
$("#searchresult").bind("mouseleave", function () {
    $("#searchresult").empty();
    $("#searchresult").css("display", "none");
});
function ChangeCoords() {
    //    var left = $("#txt_search")[0].offsetLeft; //获取距离最左端的距离，像素，整型
    //    var top = $("#txt_search")[0].offsetTop + 26; //获取距离最顶端的距离，像素，整型（20为搜索输入框的高度）
    var left = $("#newLocation1").position().left; //获取距离最左端的距离，像素，整型
    var top = $("#newLocation1").position().top + 30; ; //获取距离最顶端的距离，像素，整型（20为搜索输入框的高度）
    $("#searchresult").css("left", left + "px"); //重新定义CSS属性
    $("#searchresult").css("top", top + "px"); //同上
}
   function add(){
	  jp.openDialog('新增库存查询', "${ctx}/wms/inventory/form",'800px', '500px', $('#inventoryTable'));
  }
  function edit(id){//没有权限时，不显示确定按钮
  	  if(id == undefined){
			id = getIdSelections();
		}
	   <shiro:hasPermission name="wms:inventory:edit">
	  jp.openDialogView('查看库存', "${ctx}/wms/inventory/form?id=" + id,'800px', '500px', $('#inventoryTable'));
	   </shiro:hasPermission>
	  <shiro:lacksPermission name="wms:inventory:edit">
	  jp.openDialogView('查看库存查询', "${ctx}/wms/inventory/form?id=" + id,'800px', '500px', $('#inventoryTable'));
	  </shiro:lacksPermission>
  }

</script>